package demo10.iterator.dinermergeri;

import java.util.Iterator;

/**
 * 晚餐菜单
 * */
public class DinerMenu  implements Menu{
	static final int MAX_ITEMS = 6;//最大数

	int numberOfItems = 0;//计数

	MenuItem[] menuItems;//菜单类数组

public DinerMenu() {
	menuItems = new MenuItem[MAX_ITEMS];

	addItem("素食 番茄三明治",
		"(煎') 培根生菜 & 西红柿 用麦皮面包做", true, 2.99);
	addItem("番茄三明治",
		"哈根 和 生菜 & 西红柿 全麦面包", false, 2.99);
	addItem("例汤",
		"一天的汤，配一份土豆沙拉", false, 3.29);
	addItem("热狗",
		"热狗，酸菜，芝士。",false, 3.05);
	addItem("清蒸蔬菜加糙米",
		"糙米蒸蔬菜", true, 3.99);
	addItem("面食",
		"用蕃茄酱意大利面，和一片面包",true, 3.89);
}

public void addItem(String name, String description, 
                     boolean vegetarian, double price) 
{
	MenuItem menuItem = new MenuItem(name, description, vegetarian, price);
	if (numberOfItems >= MAX_ITEMS) {
		System.err.println("对不起，菜单已经满了！无法将项添加到菜单");
	} else {
		menuItems[numberOfItems] = menuItem;
		numberOfItems = numberOfItems + 1;
	}
}

public MenuItem[] getMenuItems() {
	return menuItems;
}

/**
 * 迭代器模式：提供一种方法顺序访问一个聚合对象中的各个元素，而又不暴露其内部的表示。
 * */
@Override
public Iterator<MenuItem> createIterator() {
	return new DinerMenuIterator(menuItems);
	
}

// 这里的其他菜单方法
 }
